AWK একটি টেক্সট প্রসেসিং ভাষা হিসেবে ডিজাইন করা হয়েছে, যেখানে প্যাটার্ন এবং অ্যাকশন স্টেটমেন্টস একসঙ্গে কাজ করে। একটি AWK স্ক্রিপ্টে সাধারণত একটি প্যাটার্ন এবং একটি অ্যাকশন থাকে, যা ফাইলের প্রতিটি রেকর্ড (লাইন) এর জন্য কার্যকর হয়।
প্যাটার্ন হল শর্ত যা নির্ধারণ করে কোন লাইনে অ্যাকশনটি কার্যকর হবে। প্যাটার্নগুলি সাধারণত নিয়মিত এক্সপ্রেশন, তুলনা অপারেটর, অথবা নির্দিষ্ট শর্ত হতে পারে। AWK এ প্যাটার্নগুলো হলো:
অপেক্ষাকৃত প্যাটার্ন: সব লাইনকেই শর্ত হিসেবে বিবেচনা করা হয়। উদাহরণ:
awk '{print}' filename.txt
এই কমান্ডটি filename.txt
ফাইলের সব লাইন প্রিন্ট করবে।
নিয়মিত এক্সপ্রেশন প্যাটার্ন: নির্দিষ্ট শব্দ বা প্যাটার্ন খুঁজে বের করতে নিয়মিত এক্সপ্রেশন ব্যবহার করা হয়। উদাহরণ:
awk '/pattern/ {print}' filename.txt
এই কমান্ডটি filename.txt
ফাইলের মধ্যে pattern
শব্দটি পাওয়া লাইনগুলো প্রিন্ট করবে।
শর্ত প্যাটার্ন: নির্দিষ্ট শর্ত পূরণ হলে প্যাটার্ন ব্যবহার করা যায়। উদাহরণ:
awk '$1 > 50 {print $1}' filename.txt
এই কমান্ডটি প্রথম কলামের মান 50 এর বেশি হলে সেই মানটি প্রিন্ট করবে।
অ্যাকশন হল সেই কার্যক্রম যা প্যাটার্নটি সত্য হলে সম্পন্ন হয়। অ্যাকশন ব্লক সাধারণত {}
এর মধ্যে লেখা হয় এবং এখানে বিভিন্ন AWK কমান্ড এবং ফাংশন ব্যবহার করা যেতে পারে। অ্যাকশনের মধ্যে সাধারণত প্রিন্ট করা, মান সংরক্ষণ করা, গণনা করা ইত্যাদি অন্তর্ভুক্ত থাকে।
সব লাইন প্রিন্ট করা:
awk '{print $0}' filename.txt
এখানে, $0
বর্তমান লাইনের সম্পূর্ণ টেক্সট নির্দেশ করে।
নির্দিষ্ট কলাম প্রিন্ট করা:
awk '{print $1, $3}' filename.txt
এই কমান্ডটি filename.txt
ফাইলের প্রথম এবং তৃতীয় কলাম প্রিন্ট করবে।
শর্তযুক্ত অ্যাকশন:
awk '$2 > 100 {print $1, $2}' filename.txt
এখানে, দ্বিতীয় কলামের মান 100 এর বেশি হলে প্রথম এবং দ্বিতীয় কলাম প্রিন্ট হবে।
AWK এর একটি প্রোগ্রামে প্যাটার্ন এবং অ্যাকশন একত্রে ব্যবহার করা হয়। উদাহরণ:
awk '$1 ~ /^[A]/ {print $0}' filename.txt
এই কমান্ডটি filename.txt
ফাইলের মধ্যে যেসব লাইন প্রথম কলামে 'A' দিয়ে শুরু হয়, সেগুলোকে প্রিন্ট করবে।
AWK এ প্যাটার্ন এবং অ্যাকশন স্টেটমেন্টস একটি শক্তিশালী উপায়ে কাজ করে, যা ব্যবহারকারীদের নির্দিষ্ট শর্ত অনুযায়ী টেক্সট ডেটা প্রক্রিয়া করতে সহায়তা করে। প্যাটার্নগুলি শর্ত নির্ধারণ করে, এবং অ্যাকশনগুলি সেই শর্ত পূরণ হলে কার্যকর হয়। AWK এর এই কাঠামো ব্যবহার করে ডেটা বিশ্লেষণ এবং প্রক্রিয়াকরণ সহজ এবং কার্যকর হয়।
Pattern matching হল একটি প্রক্রিয়া যেখানে একটি নির্দিষ্ট প্যাটার্ন অনুসারে ডেটার মধ্যে অনুসন্ধান এবং নির্বাচন করা হয়। AWK প্রোগ্রামিং ভাষায় এটি একটি গুরুত্বপূর্ণ ফিচার, যা ব্যবহারকারীদের টেক্সট ফাইলের মধ্যে নির্দিষ্ট তথ্য খুঁজে বের করতে এবং প্রক্রিয়া করতে সহায়তা করে। AWK-তে pattern matching সাধারণত নিয়মিত এক্সপ্রেশন (Regular Expressions) ব্যবহার করে সম্পন্ন হয়।
Pattern matching এর মাধ্যমে আপনি ডেটার মধ্যে অনুসন্ধান করতে পারেন, যা একটি নির্দিষ্ট প্যাটার্ন বা শর্ত অনুযায়ী হয়। এটি বিভিন্ন ক্ষেত্রের জন্য প্রযোজ্য, যেমন:
নিয়মিত এক্সপ্রেশন ব্যবহার করে প্যাটার্ন ম্যাচিং করা হয়, যা বিভিন্ন চরিত্র এবং শর্তের সংমিশ্রণে তৈরি হয়। উদাহরণস্বরূপ, [a-z]
দ্বারা ছোট হাতের অক্ষরের একটি সিরিজ বোঝায়।
AWK একটি শক্তিশালী টুল যা pattern matching-এর মাধ্যমে টেক্সট ডেটা প্রক্রিয়া করতে সক্ষম। AWK-তে pattern matching সাধারণত নিম্নলিখিতভাবে করা হয়:
awk '/pattern/ { action }' input_file
এখানে, pattern
হল একটি নিয়মিত এক্সপ্রেশন যা ডেটার মধ্যে অনুসন্ধান করা হবে। যদি patternটি মিলে যায়, তাহলে { action }
ব্লকটি কার্যকর হয়।
awk '/error/ { print }' logfile.txt
এই কমান্ডটি logfile.txt
ফাইল থেকে "error" শব্দটি থাকা সব লাইন প্রিন্ট করবে।
awk '$2 ~ /^[A-Z]/ { print }' data.txt
এটি data.txt
ফাইলের দ্বিতীয় কলামে এমন লাইনের ডেটা প্রিন্ট করবে, যেখানে দ্বিতীয় কলামের প্রথম অক্ষর একটি বড় হাতের অক্ষর।
awk '/warning/ { count++ } END { print count }' logfile.txt
এই কমান্ডটি logfile.txt
ফাইল থেকে "warning" শব্দটি থাকা লাইনের সংখ্যা গণনা করবে এবং ফলস্বরূপ দেখাবে।
Pattern matching একটি গুরুত্বপূর্ণ প্রক্রিয়া যা AWK ব্যবহার করে সহজে এবং কার্যকরভাবে করা যায়। AWK নিয়মিত এক্সপ্রেশন এবং সহজ সিনট্যাক্স ব্যবহার করে ডেটা ফিল্টারিং এবং বিশ্লেষণের কাজকে দ্রুততর করে। AWK এর এই ক্ষমতা এবং সুবিধাগুলি এটিকে প্রোগ্রামার এবং সিস্টেম অ্যাডমিনিস্ট্রেটরদের মধ্যে একটি জনপ্রিয় টুল করে তোলে, যা বিভিন্ন ধরনের ডেটা প্রক্রিয়াকরণের জন্য ব্যবহৃত হয়।
AWK তে BEGIN
এবং END
ব্লকগুলি বিশেষ ধরনের ব্লক যা প্রোগ্রামের শুরু এবং শেষের সময় কার্যকর হয়। এগুলি ডেটা প্রক্রিয়াকরণের আগে এবং পরে এক্সিকিউশন হয় এবং ব্যবহারকারীকে প্রোগ্রামের অভ্যন্তরে সূচনা এবং সমাপনী কাজ করতে সাহায্য করে।
BEGIN
ব্লকটি AWK প্রোগ্রামের শুরুর সময় কার্যকর হয়। এটি সাধারণত প্রাথমিক সেটআপের জন্য ব্যবহৃত হয়, যেমন ভেরিয়েবল প্রাথমিককরণ, হেডার মুদ্রণ, বা অন্যান্য শুরু করার কাজ।
awk 'BEGIN {
print "Name\tAge"
print "--------------"
}' data.txt
এখানে BEGIN
ব্লকটি data.txt
ফাইলের তথ্য প্রদর্শনের আগে "Name" এবং "Age" হেডার প্রিন্ট করে।
END
ব্লকটি AWK প্রোগ্রামের শেষের সময় কার্যকর হয়। এটি সাধারণত প্রোগ্রামের শেষের সময় ক্লিনআপ কাজ, যেমন সারসংক্ষেপ তৈরি করা বা ফলাফল প্রিন্ট করার জন্য ব্যবহৃত হয়।
awk '{
sum += $2 # দ্বিতীয় কলামের মানের যোগফল
} END {
print "Total:", sum
}' data.txt
এখানে END
ব্লকটি সকল রেকর্ড প্রসেস করার পরে "Total:" সহ যোগফলটি প্রিন্ট করে।
BEGIN
এবং END
ব্লকগুলি একসাথে ব্যবহার করা হলে, প্রোগ্রামটি ডেটা প্রসেস করার সময় সূচনা এবং সমাপনী কার্যক্রম সহজে পরিচালনা করতে পারে।
awk 'BEGIN {
print "Name\tAge"
print "--------------"
}
{
print $1, "\t", $2
}
END {
print "--------------"
print "End of Report"
}' data.txt
এখানে, BEGIN
ব্লকটি হেডার প্রিন্ট করে, প্রধান ব্লকটি ডেটা প্রদর্শন করে এবং END
ব্লকটি রিপোর্টের শেষে একটি লাইন এবং "End of Report" বার্তা প্রিন্ট করে।
BEGIN
এবং END
ব্লকগুলি AWK প্রোগ্রামের কার্যকরী উপাদান। BEGIN
ব্লক প্রোগ্রামের শুরুতে কার্যকর হয়, যেখানে প্রাথমিক সেটআপ করা হয়, এবং END
ব্লক প্রোগ্রামের শেষে কার্যকর হয়, যেখানে ফলাফল বা সারসংক্ষেপ উপস্থাপন করা হয়। এই ব্লকগুলি ব্যবহার করে ডেটা প্রসেসিংকে আরও সংগঠিত এবং কার্যকরী করা যায়।
AWK একটি শক্তিশালী টেক্সট প্রসেসিং ভাষা যা প্যাটার্ন এবং অ্যাকশন ভিত্তিক ডেটা প্রক্রিয়াকরণের জন্য ডিজাইন করা হয়েছে। এতে ব্যবহারকারী নির্দিষ্ট প্যাটার্ন নির্ধারণ করে এবং সেই প্যাটার্নের ভিত্তিতে একটি অ্যাকশন সম্পাদন করে। এই পদ্ধতি ডেটা বিশ্লেষণের কাজকে সহজ এবং কার্যকরী করে।
প্যাটার্নগুলি শর্ত নির্দেশ করে যা AWK প্রোগ্রামে প্রয়োগ করা হয়। একটি প্যাটার্ন হল একটি নির্দিষ্ট নিয়ম বা শর্ত যা রেকর্ড বা লাইনে নির্ধারণ করে। AWK এর কিছু সাধারণ প্যাটার্ন হল:
/pattern/
।NR == 5
(পঞ্চম রেকর্ড)।$1 > 100
(প্রথম ফিল্ড 100 এর বেশি)।অ্যাকশনগুলি হল সেই কার্যক্রম যা AWK প্যাটার্ন ম্যাচ হলে সম্পাদন করে। অ্যাকশনগুলি সাধারণত {}
বন্ধনীর মধ্যে থাকে এবং এতে বিভিন্ন অপারেশন অন্তর্ভুক্ত থাকতে পারে, যেমন print
, printf
, পরিবর্তন, গণনা ইত্যাদি।
AWK এর সাধারণ সিনট্যাক্স হলো:
awk 'pattern { action }' filename
বেসিক ডেটা প্রক্রিয়াকরণ:
awk '{print $1, $3}' filename.txt
এখানে, প্রতিটি লাইনের প্রথম এবং তৃতীয় কলাম প্রিন্ট হবে।
শর্তযুক্ত ডেটা প্রক্রিয়াকরণ:
awk '$2 > 50 {print $1}' filename.txt
এখানে, যদি দ্বিতীয় কলামের মান 50 এর বেশি হয়, তবে প্রথম কলাম প্রিন্ট হবে।
রেগুলার এক্সপ্রেশন ব্যবহার:
awk '/error/ {print $0}' logfile.txt
এখানে, logfile.txt
ফাইলে "error" শব্দযুক্ত সব লাইন প্রিন্ট হবে।
গণনা এবং আউটপুট:
awk '{sum += $2} END {print sum}' filename.txt
এখানে, দ্বিতীয় কলামের সব মান যোগ করে শেষে মোট যোগফল প্রিন্ট হবে।
মাল্টিপল শর্তাবলী ব্যবহার:
awk '($1 > 100 && $2 < 50) {print $0}' filename.txt
এখানে, যদি প্রথম কলাম 100 এর বেশি এবং দ্বিতীয় কলাম 50 এর কম হয়, তবে পুরো রেকর্ড প্রিন্ট হবে।
একাধিক প্যাটার্ন এবং অ্যাকশন একসাথে ব্যবহার করা যেতে পারে। উদাহরণস্বরূপ:
awk '$1 ~ /^[A-Z]/ {print $0} $3 < 100 {print $1, $3}' filename.txt
এখানে, প্রথম প্যাটার্নটি চেক করে যে প্রথম কলামের মান বড় হাতের অক্ষরে শুরু হচ্ছে কিনা এবং সেই ক্ষেত্রে পুরো লাইন প্রিন্ট করে। দ্বিতীয় প্যাটার্নটি তৃতীয় কলামের মান 100 এর কম হলে প্রথম এবং তৃতীয় কলাম প্রিন্ট করে।
AWK এর প্যাটার্ন এবং অ্যাকশন ভিত্তিক ডেটা প্রক্রিয়াকরণ একটি শক্তিশালী টুল যা ব্যবহারকারীদের বিভিন্ন শর্ত অনুযায়ী ডেটা বিশ্লেষণ করতে সহায়তা করে। এটি ডেটা ফাইল থেকে তথ্য বের করতে, প্রক্রিয়া করতে এবং ফলাফল উপস্থাপন করতে খুবই কার্যকর। AWK এর এই বৈশিষ্ট্যগুলি ব্যবহার করে, আপনি জটিল ডেটা বিশ্লেষণ এবং প্রক্রিয়াকরণ কাজকে দ্রুত এবং সহজে সম্পন্ন করতে পারেন।
AWK একটি শক্তিশালী টেক্সট প্রসেসিং ভাষা, যেখানে Default Actions একটি গুরুত্বপূর্ণ ভূমিকা পালন করে। AWK তে, যখন একটি শর্ত পূর্ণ হয়, তখন একটি সংশ্লিষ্ট কার্যকলাপ নির্ধারণ না করা হলে, AWK কিছু ডিফল্ট কার্যকলাপ সম্পাদন করে। ডিফল্ট অ্যাকশনের মাধ্যমে, ব্যবহারকারীরা সহজে টেক্সট বা ডেটা প্রক্রিয়া করতে পারেন।
AWK তে, যখন একটি শর্ত সত্য হয়, তখন প্রাথমিকভাবে AWK ডিফল্ট কার্যকলাপ হিসেবে সম্পূর্ণ লাইনের আউটপুট প্রদান করে। অর্থাৎ, যদি কোনও অ্যাকশন ব্লক উল্লেখ না করা হয়, তবে AWK স্বয়ংক্রিয়ভাবে print $0
(যেখানে $0
হল সম্পূর্ণ বর্তমান রেকর্ড) কার্যকর করে।
awk '$1 == "Alice"' filename.txt
এখানে, $1 == "Alice"
শর্তটি যদি সত্য হয়, তাহলে AWK ডিফল্টভাবে সম্পূর্ণ লাইনের আউটপুট দেবে, কারণ কোনও অ্যাকশন নির্ধারণ করা হয়নি।
awk '$3 > 50' data.txt
এখানে, যদি তৃতীয় কলামের মান 50 এর বেশি হয়, তবে সেই লাইনের সবকিছু ডিফল্টভাবে আউটপুট হবে। এই ক্ষেত্রে, ব্যবহারকারী কোনও অ্যাকশন উল্লেখ করেনি।
awk '$1 == "Bob" {print $2} {print}' filename.txt
এখানে, $1 == "Bob"
শর্তটি সত্য হলে $2
প্রিন্ট করবে, এবং অন্যান্য সমস্ত লাইনের জন্য ডিফল্টভাবে প্রিন্ট করবে।
AWK তে Default Actions একটি কার্যকর বৈশিষ্ট্য যা ব্যবহারকারীদের শর্তের ভিত্তিতে ডেটার প্রক্রিয়াকরণের সময় দ্রুত এবং সহজ ফলাফল পেতে সহায়তা করে। যখন ব্যবহারকারী কোনও নির্দিষ্ট অ্যাকশন উল্লেখ না করেন, তখন AWK স্বয়ংক্রিয়ভাবে সম্পূর্ণ লাইনের আউটপুট প্রদান করে। এটি কোড লেখার সময় ব্যবহারকারীদের জন্য সহজতা এবং কার্যকারিতা বৃদ্ধি করে। Default Actions এর সঠিক ব্যবহার AWK স্ক্রিপ্টের কার্যকারিতা বাড়ায় এবং ডেটা বিশ্লেষণের কাজকে আরও কার্যকর করে।
common.read_more